package com.base.po.pdd_sdk;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

/**
 * 搜索请求参数
 * 
 * @author max
 *
 */
public class PddGoodsSearchRequest {
	private List<String> searchReq = new ArrayList<>(); // 搜索请求参数

	/**
	 * @param keyword 商品关键词
	 */
	public void setKeyword(String keyword) {
		if (keyword != null && !keyword.isEmpty()) {
			try {
				searchReq.add("keyword=" + new String(keyword.getBytes(StandardCharsets.UTF_8), "GBK"));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * @param opt_id 商品标签类目ID
	 */
	public void setOpt_id(Long opt_id) {
		if (opt_id != null) {
			searchReq.add("opt_id=" + opt_id);
		}
	}

	/**
	 * @param page 默认值1，商品分页数
	 */
	public void setPage(Integer page) {
		if (page != null) {
			searchReq.add("page=" + page);
		}
	}

	/**
	 * @param page_size 默认100，每页商品数量
	 */
	public void setPage_size(Integer page_size) {
		if (page_size != null) {
			searchReq.add("page_size=" + page_size);
		}
	}

	/**
	 * @param sort_type 排序方式 必填
	 */
	public void setSort_type(Integer sort_type) {
		if (sort_type == null) {
			sort_type = 0;
		}
		searchReq.add("sort_type=" + sort_type);
	}

	/**
	 * @param with_coupon 是否只返回优惠券的商品 必填
	 */
	public void setWith_coupon(Boolean with_coupon) {
		if (with_coupon == null) {
			with_coupon = false;
		}
		searchReq.add("with_coupon=" + with_coupon);
	}

	/**
	 * @param range_list 范围列表
	 */
	public void setRange_list(String range_list) {
		if (range_list != null && !range_list.isEmpty()) {
			try {
				searchReq.add("range_list=" + new String(range_list.getBytes(StandardCharsets.UTF_8), "GBK"));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * @param pid 推广位ID
	 */
	public void setPid(String pid) {
		if (pid != null) {
			searchReq.add("pid=" + pid);
		}
	}

	/**
	 * @param goods_id_list 商品ID列表
	 */
	public void setGoods_id_list(Long[] goods_id_list) {
		if (goods_id_list != null && goods_id_list.length > 0) {
			StringBuilder sb = new StringBuilder();
			sb.append("[");
			for (int i = 0; i < goods_id_list.length; i++) {
				sb.append(goods_id_list[i]);
				if (i == goods_id_list.length - 1) {
					continue;
				}
				sb.append(",");
			}
			sb.append("]");
			searchReq.add("goods_id_list=" + sb);
		}
	}

	/**
	 * @param zs_duo_id 招商多多客ID
	 */
	public void setZs_duo_id(Long zs_duo_id) {
		if (zs_duo_id != null) {
			searchReq.add("zs_duo_id=" + zs_duo_id);
		}
	}

	/**
	 * @param merchant_type 店铺类型
	 */
	public void setMerchant_type(Integer merchant_type) {
		if (merchant_type != null) {
			searchReq.add("merchant_type=" + merchant_type);
		}
	}

	/**
	 * @param cat_id 商品类目ID
	 */
	public void setCat_id(Long cat_id) {
		if (cat_id != null) {
			searchReq.add("cat_id=" + cat_id);
		}
	}

	/**
	 * @return 搜索参数
	 */
	public List<String> getSearchReq() {
		return searchReq;
	}
}
